<?php
class detallerentradas extends Model 
{
	
	private $mTableName='IB_DetallesregistroEntrada';
	
	
	public function __construct()
	{
		parent::Model();
	}
	
    function createDetalle($data)
    {
    	$this->db->insert($this->mTableName, $data);
    }
    
    function updateDetalle($data,$id)
    {
    	   $this->db->where('id', $id);
           $this->db->update($this->mTableName, $data); 
    }
	
	function LoadDetalleById($id_transaccion) 
	{
		$qresult = $this->db->get_where($this->mTableName, array('id' => $id_transaccion));		
		if ($qresult->num_rows() == 0)
				return false;

			return new detalle($qresult->row());
	}
	
    function LoadDetalleCantidadFiltro($fecha1,$fecha2,$use = false)
	{
		if ($use < 1) {
			$qresult = $this->db->get_where($this->mTableName, array(
		                                                         'DateSistema >='=>$fecha1,
		                                                         'DateSistema <='=>$fecha2));
		}else{
				$qresult = $this->db->get_where($this->mTableName, array(
		                                                         'DateSistema >='=>$fecha1,
		                                                         'DateSistema <='=>$fecha2,
				                                                 'IdUsuario'     =>$use));
		}
	
		return $qresult->num_rows();
		
	}
	
	function loadDetalleCantidadArray($where)
	{
		$qresult = $this->db->get_where($this->mTableName, $where);
		return $qresult->num_rows();
	}
    
	
	function LoadDetalleById2($id_transaccion) 
	{
		$qresult = $this->db->get_where($this->mTableName, array('IdTrasacionEntrada' => $id_transaccion));		

			return $qresult->rows();
	}
	
     function LoadDetalleByUse($id_Use) 
	 {
		$qresult = $this->db->get_where($this->mTableName, array('IdUsuario' => $id_Use));		
         return count($this->GetDetalleArrayFromQueryResult($qresult));
			
	}
	
    public function loadCantByWhere($where, $usuario = false) 
    {
    	
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
         	 
         	$qresult = $this->db->get_where($this->mTableName, $where);
         	return $qresult->num_rows();
         	
     }
     
     
     public function loadCantByIn($where, $idTseguimiento, $usuario = false) 
     {
     	
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
   
         	$this->db->where($where);
         	$this->db->where_in('idTipoSeguimiento', $idTseguimiento);
            $result = $this->db->get($this->mTableName);
         	return $result->num_rows();
         	
      }
	
         
	function LoadDetalle($start = false, $offset = false, $sortname = false, $sortorder = false) 
	{
			
			if($offset != false)
				$this->db->limit($offset, $start);

			if($sortname != false && $sortorder != false) {
				$this->db->order_by($sortname, $sortorder);
			}
	
			$result = $this->db->get_where($this->mTableName);
	
			return $this->GetDetalleArrayFromQueryResult($result);
	}
	
	
	function LoadDetalleWhere($where, $usuario = false, $start = false, $offset = false, $sortname = false, $sortorder = false) 
	{
		
		
	        if($offset != false)
				$this->db->limit($offset, $start);
				

			if($sortname != false && $sortorder != false) {
				$this->db->order_by($sortname, $sortorder);
			}
			
		
		    if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
		    
			$this->db->where($where);
			$result = $this->db->get_where($this->mTableName);
	
			return $this->GetDetalleArrayFromQueryResult($result);
	}
		
	private function GetDetalleArrayFromQueryResult($resurt) 
	{
		    
			if ($resurt->num_rows() == 0){
				
				return false;
			}
			
			$etapas_arr = array();
	
			foreach ($resurt->result() as $record) {
				
				$etapas_arr[] = new detalle($record);
				
			}
	
			return $etapas_arr;
    }
    
    function loadLastProcesoDetalle($idcompania)
	{
		$this->db->select_max('id');
		$query=$this->db->get_where($this->mTableName,array('IdTrasacionEntrada' =>$idcompania));
		$res=$query->result();
		$rs=$res[0]->id;
		return $rs;
	}
	
    function GetCount() 
    {
		return count($this->LoadDetalle());
	}
	
	function Delete($id_transaccion) 
    {		
    	   
		return $this->db->delete($this->mTableName, array('id' => $id_transaccion));
	}
	
	function cargarDetallePorRegistro($iddetalle)
    {
               $this->db->where('IdTrasacionEntrada',$iddetalle);
               $resultado = $this->db->get($this->mTableName);
               if ($resultado->num_rows() == 0)
               {
                       return false;
               }
               return $this->GetDetalleArrayFromQueryResult($resultado);
    }
    
    function urtDetalle($id)
    {
    	$this->db->select_max('id');
		$query=$this->db->get_where($this->mTableName,array('IdTrasacionEntrada' =>$id));
		$res=$query->result();
		$rs=$res[0]->id;
		return $rs;
    	  	 
    }
    
    //function de filtro por dias
    
    function filtro($id)
    {
    	$qresult = $this->db->get_where($this->mTableName, array('id' => $id));		
		if ($qresult->num_rows() == 0)
				return false;

			$var = new detalle($qresult->row());
			
			
			 $var = $this->CalcularDias($var->getDateSistema(),date("Y-m-d"));
			
			return $var;
    }
    
    function CalcularDias($fechapar,$fechaact)
    {
       
		$fechapar = substr($fechapar,0,10);
		
		$fechaact = substr($fechaact,0,10);
		
		$fechapar_arr=explode('-',$fechapar);
		
	
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

   }
  
       
 
}


class detalle
{
	
	private $iddetalles;
	private $contenidodetalles;
	private $idtransacion;
	private $idusuario;
	private $fecha;
	private $tiposeguimiento;
	private $hora;
	
	public function __construct($obj)
	{
		
		
		$this->setIdDetalle($obj->id);
		$this->setCotenido($obj->ContenidoDetalle);
		$this->setIdSRegistro($obj->IdTrasacionEntrada);
		$this->setIdUsuario($obj->IdUsuario);
		$this->setDateSistema($obj->DateSistema);
		$this->setTipoSeguimiento($obj->idTipoSeguimiento);
		$this->setHora($obj->TimeSistema);
		
		
	}
	
	
	public function setIdDetalle($idtransaccion)
	{
		$this->iddetalles=$idtransaccion;
	}
	
	public function getIdDetalle()
	{
		return $this->iddetalles;
	}
	
	public function setCotenido($referencia)
	{
		$this->contenidodetalles=$referencia;
	}
	
	public function getCotenido()
	{
		return $this->contenidodetalles;
	}
	
	public function setIdSRegistro($date)
	{
		$this->idtransacion = $date;
	}
	
	public function getIdSRegistro()
	{
		return $this->idtransacion;
	}
	
	public function setIdUsuario($id)
	{
		$this->idusuario = $id;
	}
	
	public function getIdUsuario()
	{
		return $this->idusuario;
	}
	
	public function setDateSistema($date2)
	{
		$this->fecha = $date2;
	}
	
	public function getDateSistema()
	{
		return $this->fecha;
	}
	
	public function setTipoSeguimiento($tipoSeguimiento)
	{
		$this->tiposeguimiento = $tipoSeguimiento;
	}
	
	public function getTipoSeguimiento()
	{
		return $this->tiposeguimiento;
	}
	
	public function getHora()
	{
		return $this->hora;
	}
	
	public function setHora($hora)
	{
		$this->hora = $hora;
	}
	
	
	}

?>